package sss;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @author VernHe
 * @date 2021年08月16日 8:58
 */
public class Day_06_2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        solution(n);
    }
    private static void solution(int n) {
        // 数组，默认全是1
        int[] arr = new int[n];
        Arrays.fill(arr, 1);
        // 打印n行
        for (int i = 1; i <= n;i++) {
            // 打印前n个
            int j = 0;
            for (; j < i; j++) {
                if (j == i - 1) {
                    // 最后没有空格
                    System.out.printf(arr[j] + "");
                } else {
                    System.out.printf(arr[j] + " ");
                }
            }
            // 换行
            System.out.println();
            // 从第三行开始，从后往前更新前n + 1个元素
            if (i <= n && i >= 2) {
                // 从后往前重新计算
                // 因为能到这里说明，j == i
                --j;
                while (j > 0) {
                    arr[j] += arr[j - 1];
                    --j;
                }
            }
        }
    }
}

/**
 * 1                i = 1
 * 1 1              i = 2
 * 1 2 1            i = 3
 * 1 3 3 1          i = 4
 * 1 4 6 4 1        n = 5
 */